package cn.sfrog.project.biz.admin.domain.vo;

import cn.sfrog.common.annotation.Excel;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;


@Data
@ApiModel(description = "服务订单")
public class BizServiceOrderVO {

    @ApiModelProperty("id")
    @Excel(name = "id")
    private Long id;

    @ApiModelProperty("服务订单编号")
    @Excel(name = "服务订单编号")
    private String serviceOrderSn;

    @ApiModelProperty("订单类型【1=用户订单 2=客服代下单】")
    @Excel(name = "订单类型【1=用户订单 2=客服代下单】")
    private String type;

    @ApiModelProperty("下单用户id")
    @Excel(name = "下单用户id")
    private Long userId;

    @ApiModelProperty("预约时间")
    @Excel(name = "预约时间", width = 30, dateFormat = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date appointmentDate;

    @ApiModelProperty("预约医院id")
    @Excel(name = "预约医院id")
    private Long hospitalId;

    @ApiModelProperty("联系人手机号")
    @Excel(name = "联系人手机号")
    private String contactPhone;

    @ApiModelProperty("联系人姓名")
    @Excel(name = "联系人姓名")
    private String contactName;

    @ApiModelProperty("特殊需求")
    @Excel(name = "特殊需求")
    private String specialNeeds;

    @ApiModelProperty("购买的类型【1=服务 2=套餐】")
    @Excel(name = "购买的类型【1=服务 2=套餐】")
    private String buyType;

    @ApiModelProperty("商品id ")
    @Excel(name = "商品id ")
    private Long productId;

    @ApiModelProperty("购买数量")
    @Excel(name = "购买数量")
    private Integer num;

    @ApiModelProperty("订单金额【陪护豆】")
    @Excel(name = "订单金额【陪护豆】")
    private BigDecimal amount;

    @ApiModelProperty("订单状态【1=待服务 2=待支付 3=待接单 4=服务中 5=已完成 6=已取消】")
    @Excel(name = "订单状态【1=待服务 2=待支付 3=待接单 4=服务中 5=已完成 6=已取消】")
    private String orderStatus;

    @ApiModelProperty("派单时间")
    @Excel(name = "派单时间", width = 30, dateFormat = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date dispatchTime;

    @ApiModelProperty("完成时间")
    @Excel(name = "完成时间", width = 30, dateFormat = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date finishTime;

    @ApiModelProperty("取消时间")
    @Excel(name = "取消时间", width = 30, dateFormat = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date cancelTime;

    @ApiModelProperty("支付时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date paymentTime;

    @ApiModelProperty("签到时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date signInTime;

    @ApiModelProperty("删除状态【0=未删除 1=已删除】")
    private String delFlag;



    @ApiModelProperty("服务名称")
    private String serviceName;

    @ApiModelProperty("接单用户名称")
    private String acceptUserName;



    @ApiModelProperty("服务商")
    private String serviceUserName;

    @ApiModelProperty("下单用户名称")
    private String orderUserName;

    @ApiModelProperty("下单用户手机号")
    private String orderUserPhone;

    @ApiModelProperty("创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;


    /** 评价状态【0=未评价 1=已评价】 */
    @ApiModelProperty("评价状态【0=未评价 1=已评价】")
    private String evaluationStatus;

    /** 投诉状态【0=未投诉 1=投诉了】 */
    @ApiModelProperty("投诉状态【0=未投诉 1=投诉了】")
    private String complaintStatus;



    @ApiModelProperty("备注")
    @Excel(name = "备注")
    private String remark;

    @ApiModelProperty("评价信息")
    private BizServiceOrderEvaluationVO orderEvaluation;

    @ApiModelProperty("投诉信息")
    private BizServiceOrderComplaintVO orderComplaint;

    @ApiModelProperty("服务信息")
    private BizServiceInfoResultVO serviceInfoVo;

    @ApiModelProperty("套餐信息")
    private BizComboInfoResultVO comboInfoResultVo;

    @ApiModelProperty("接单人id")
    private Long acceptUserId;

    /**派单类型【10=客户派单 20=陪诊派单 30=护工派单 40=医生派单】*/
    @ApiModelProperty("派单类型【10=客户派单 20=陪诊派单 30=护工派单 40=医生派单】")
    private String dispatchType;

}
